home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.5 Complementary Applications 2004 February / SGI IRIX 6.5 Complementary Applications 2004 February.iso / dist / cde.idb / usr / dt / share / man / cat3 / XmFileSelectionBox.z.z / XmFileSelectionBox.z / XmFileSelectionBox
Encoding:
Text File  |  2003-11-18  |  58.6 KB  |  1,189 lines

  1.  
  2.  
  3.  
  4.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.       _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x - The FileSelectionBox widget class
  10.  
  11.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.       #include <Xm/FileSB.h>
  13.  
  14.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.       FileSelectionBox traverses through directories, views    the
  16.       files    and subdirectories in them, and    then selects files.
  17.  
  18.       A FileSelectionBox has the following main areas:
  19.  
  20.       +o    A text input field for displaying and editing a
  21.            directory mask used to select the files to be displayed
  22.  
  23.       +o    An optional text    input field for    displaying and editing
  24.            a filter    mask used to select the    files to be displayed.
  25.  
  26.       +o    A scrollable list of filenames
  27.  
  28.       +o    A scrollable list of subdirectories
  29.  
  30.       +o    A text input field for displaying and editing a
  31.            filename
  32.  
  33.       +o    A group of PushButtons, labeled _O_K, _F_i_l_t_e_r, _C_a_n_c_e_l, and
  34.            _H_e_l_p
  35.  
  36.       Additional children may be added to the FileSelectionBox
  37.       after    creation.  FileSelectionBox inherits the layout
  38.       functionality    provided by SelectionBox for any additional
  39.       children.  The list of filenames, the    list of
  40.       subdirectories, or both can be removed from the
  41.       FileSelectionBox after creation by unmanaging    the
  42.       appropriate widgets and their    labels.     The list and label
  43.       widgets are obtained by calling the function
  44.       _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_G_e_t_C_h_i_l_d.  To remove either    the directory
  45.       list or the file list, unmanage the parent of    the
  46.       appropriate list widget and unmanage the corresponding
  47.       label.
  48.  
  49.       The user can specify resources in a resource file for    the
  50.       automatically    created    widgets    and gadgets of
  51.       FileSelectionBox.  The following list    identifies the names
  52.       of these widgets (or gadgets)    and the    associated
  53.       FileSelectionBox areas.
  54.  
  55.           Filter Label - "FilterLabel"
  56.  
  57.           Filter Text -    "Text"
  58.  
  59.           Directory List - "DirList"
  60.  
  61.  
  62.  
  63.      Page 1                        (printed 11/11/03)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  71.  
  72.  
  73.  
  74.           Directory List Label - "Dir"
  75.  
  76.       The directory    mask is    a string specifying the    base directory
  77.       to be    examined and a search pattern.    Ordinarily, the
  78.       directory list displays the subdirectories of    the base
  79.       directory, as    well as    the base directory itself and its
  80.       parent directory.  The file list ordinarily displays all
  81.       files    and/or subdirectories in the base directory that match
  82.       the search pattern.
  83.  
  84.       Optionally, the search pattern mask and the base directory
  85.       can be displayed in two separate text    fields.     This option
  86.       is controlled    by the _p_a_t_h_M_o_d_e    resource.  Having two text
  87.       fields for the search    pattern    mask and the directory makes
  88.       it easier for    the end    user to    edit and understand these two
  89.       separate concepts.  Using this alternate display does    not
  90.       change the meaning of    resources that control the content of
  91.       these    fields:    XmNdirectory, XmNdirMask, and XmNpattern.
  92.  
  93.       A procedure specified    by the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c
  94.       resource extracts the    base directory and search pattern from
  95.       the directory    mask.  If the directory    specification is
  96.       empty, the current working directory is used.     If the    search
  97.       pattern is empty, a pattern that matches all files is    used.
  98.  
  99.       An application can supply its    own _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c
  100.       as well as its own procedures    to search for subdirectories
  101.       and files.  The default _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c works as
  102.       follows:  The    directory mask is a pathname that can contain
  103.       zero or more wwwwiiiillllddddccccaaaarrrrdddd    characters in its directory portion,
  104.       its file portion, or both.  The directory components of the
  105.       directory mask up to,    but not    including, the first component
  106.       with a wildcard character specify the    directory to be
  107.       searched, relative to    the current working directory.    The
  108.       remaining components specify the search pattern.  If the
  109.       directory mask is empty or if    its first component contains a
  110.       wildcard character, the current working directory is
  111.       searched.  If    no component of    the directory mask contains a
  112.       wildcard character, the entire directory mask    is the
  113.       directory specification, and all files in that directory are
  114.       matched.
  115.  
  116.       The user can select a    new directory to examine by scrolling
  117.       through the list of directories and selecting    the desired
  118.       directory or by editing the directory    mask.  Selecting a new
  119.       directory from the directory list does not change the    search
  120.       pattern.  A user can select a    new search pattern by editing
  121.       the directory    mask or, when the FileSelectionBox has the
  122.       optional _p_a_t_h_M_o_d_e XmPATH_MODE_RELATIVE display, the filter
  123.       text field.  Double clicking or pressing _K_A_c_t_i_v_a_t_e on    a
  124.       directory in the directory list initiates a search for files
  125.       and subdirectories in    the new    directory, using the current
  126.  
  127.  
  128.  
  129.      Page 2                        (printed 11/11/03)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  137.  
  138.  
  139.  
  140.       search pattern.
  141.  
  142.       The user can select a    file by    scrolling through the list of
  143.       filenames and    selecting the desired file or by entering the
  144.       filename directly into the text edit area.  Selecting    a file
  145.       from the list    causes that filename to    appear in the file
  146.       selection text edit area.
  147.  
  148.       The user may select a    new file as many times as desired.
  149.       The application is not notified until    the user takes one of
  150.       these    actions:
  151.  
  152.       +o    Selects the _O_K PushButton
  153.  
  154.       +o    Presses _K_A_c_t_i_v_a_t_e while the selection text edit area
  155.            has the keyboard    focus.
  156.  
  157.       +o    Double clicks or    presses    _K_A_c_t_i_v_a_t_e on an    item in    the
  158.            file list
  159.  
  160.       FileSelectionBox initiates a directory and file search when
  161.       any of the following occurs:
  162.  
  163.       +o    The FileSelectionBox is initialized
  164.  
  165.       +o    The function _X_t_S_e_t_V_a_l_u_e_s    is used    to change _X_m_N_d_i_r_M_a_s_k,
  166.            _X_m_N_d_i_r_e_c_t_o_r_y, _X_m_N_p_a_t_t_e_r_n, or _X_m_N_f_i_l_e_T_y_p_e_M_a_s_k
  167.  
  168.       +o    The user    activates the _F_i_l_t_e_r PushButton
  169.  
  170.       +o    The user    double clicks or presses _K_A_c_t_i_v_a_t_e on an item
  171.            in the directory    list
  172.  
  173.       +o    The application calls _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_D_o_S_e_a_r_c_h
  174.  
  175.       +o    The user    presses    _K_A_c_t_i_v_a_t_e while    the directory mask
  176.            text edit area has the keyboard focus
  177.  
  178.       When a file search is    initiated, the FileSelectionBox    takes
  179.       the following    actions:
  180.  
  181.       +o    Constructs an _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_C_a_l_l_b_a_c_k_S_t_r_u_c_t
  182.            structure with values appropriate for the action    that
  183.            initiated the search
  184.  
  185.       +o    Calls the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c with the callback
  186.            structure as the    data input argument
  187.  
  188.       +o    Sets _X_m_N_d_i_r_e_c_t_o_r_y_V_a_l_i_d and _X_m_N_l_i_s_t_U_p_d_a_t_e_d to False
  189.  
  190.       +o    Calls the _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c with the qualified data
  191.            returned    by the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c
  192.  
  193.  
  194.  
  195.      Page 3                        (printed 11/11/03)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  203.  
  204.  
  205.  
  206.       If _X_m_N_d_i_r_e_c_t_o_r_y_V_a_l_i_d is True,    the FileSelectionBox takes
  207.       these    additional actions:
  208.  
  209.       +o    Sets _X_m_N_l_i_s_t_U_p_d_a_t_e_d to False
  210.  
  211.       +o    Calls the _X_m_N_f_i_l_e_S_e_a_r_c_h_P_r_o_c with    the qualified data
  212.            returned    by the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c    (and possibly
  213.            modified    by the _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c)
  214.  
  215.       +o    If _X_m_N_l_i_s_t_U_p_d_a_t_e_d is True and the file list is empty,
  216.            displays    the _X_m_N_n_o_M_a_t_c_h_S_t_r_i_n_g in    the file list and
  217.            clears the selection text and _X_m_N_d_i_r_S_p_e_c
  218.  
  219.       +o    If _X_m_N_l_i_s_t_U_p_d_a_t_e_d is True and the file list is not
  220.            empty, sets the selection text and _X_m_N_d_i_r_S_p_e_c to    the
  221.            qualified ddddiiiirrrr returned by the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c
  222.            (and possibly modified by the _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c)
  223.  
  224.       +o    Sets the    directory mask text and    _X_m_N_d_i_r_M_a_s_k to the
  225.            qualified mmmmaaaasssskkkk returned by the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c
  226.            (and possibly modified by the _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c)
  227.  
  228.       +o    Sets _X_m_N_d_i_r_e_c_t_o_r_y to the    qualified ddddiiiirrrr returned by the
  229.            _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c    (and possibly modified by the
  230.            _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c)
  231.  
  232.       +o    Sets _X_m_N_p_a_t_t_e_r_n to the qualified    ppppaaaatttttttteeeerrrrnnnn    returned by
  233.            the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c (and possibly modified by
  234.            the _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c)
  235.  
  236.     CCCCllllaaaasssssssseeeessss
  237.       FileSelectionBox inherits behavior and resources from    _C_o_r_e,
  238.       _C_o_m_p_o_s_i_t_e, _C_o_n_s_t_r_a_i_n_t, _X_m_M_a_n_a_g_e_r, _X_m_B_u_l_l_e_t_i_n_B_o_a_r_d, and
  239.       _X_m_S_e_l_e_c_t_i_o_n_B_o_x.
  240.  
  241.       The class pointer is _x_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_W_i_d_g_e_t_C_l_a_s_s.
  242.  
  243.       The class name is _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x.
  244.  
  245.     NNNNeeeewwww RRRReeeessssoooouuuurrrrcccceeeessss
  246.       The following    table defines a    set of widget resources    used
  247.       by the programmer to specify data.  The programmer can also
  248.       set the resource values for the inherited classes to set
  249.       attributes for this widget.  To reference a resource by name
  250.       or by    class in a .Xdefaults file, remove the _X_m_N or _X_m_C
  251.       prefix and use the remaining letters.     To specify one    of the
  252.       defined values for a resource    in a .Xdefaults    file, remove
  253.       the _X_m prefix    and use    the remaining letters (in either
  254.       lowercase or uppercase, but include any underscores between
  255.       words).  The codes in    the access column indicate if the
  256.       given    resource can be    set at creation    time (C), set by using
  257.       _X_t_S_e_t_V_a_l_u_e_s (S), retrieved by    using _X_t_G_e_t_V_a_l_u_e_s (G), or is
  258.  
  259.  
  260.  
  261.      Page 4                        (printed 11/11/03)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  269.  
  270.  
  271.  
  272.       not applicable (N/A).
  273.  
  274.                     XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  275.      NNNNaaaammmmeeee            CCCCllllaaaassssssss               TTTTyyyyppppeeee            DDDDeeeeffffaaaauuuulllltttt            AAAAcccccccceeeessssssss
  276.      _____________________________________________________________________________________________________
  277.      XmNdirectory        XmCDirectory           XmString        dynamic            CSG
  278.      XmNdirectoryValid        XmCDirectoryValid       Boolean        dynamic            SG
  279.      XmNdirListItems        XmCDirListItems           XmStringTable    dynamic            SG
  280.      XmNdirListItemCount    XmCDirListItemCount       int            dynamic            SG
  281.      XmNdirListLabelString    XmCDirListLabelString       XmString        dynamic            CSG
  282.      XmNdirMask            XmCDirMask           XmString        dynamic            CSG
  283.      XmNdirSearchProc        XmCDirSearchProc       XmSearchProc        default    procedure   CSG
  284.      XmNdirSpec            XmCDirSpec           XmString        dynamic            CSG
  285.      XmNfileListItems        XmCItems           XmStringTable    dynamic            SG
  286.      XmNfileListItemCount    XmCItemCount           int            dynamic            SG
  287.      XmNfileListLabelString    XmCFileListLabelString       XmString        dynamic            CSG
  288.      XmNfileSearchProc        XmCFileSearchProc       XmSearchProc        default    procedure   CSG
  289.      XmNfileTypeMask        XmCFileTypeMask           unsigned char    XmFILE_REGULAR        CSG
  290.      XmNfilterLabelString    XmCFilterLabelString       XmString        dynamic            CSG
  291.      XmNlistUpdated        XmCListUpdated           Boolean        dynamic            SG
  292.      XmNnoMatchString        XmCNoMatchString       XmString        " [    ] "        CSG
  293.      XmNpattern            XmCPattern           XmString        dynamic            CSG
  294.      XmNqualifySearchDataProc    XmCQualifySearchDataProc   XmQualifyProc    default    procedure   CSG
  295.      pathMode            PathMode           XmRPathMode        XmPATH_MODE_FULL    C
  296.      fileFilterStyle        FileFilterStyle           XmRFileFilterStyle    XmFILTER_NONE        C
  297.      dirTextLabelString        DirTextLabelString       XmString        NULL            C
  298.  
  299.  
  300.       _X_m_N_d_i_r_e_c_t_o_r_y
  301.            Specifies the base directory used in combination    with
  302.            _X_m_N_p_a_t_t_e_r_n in determining the files and directories to
  303.            be displayed.  The default value    is determined by the
  304.            _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c    and depends on the initial
  305.            values of _X_m_N_d_i_r_M_a_s_k, _X_m_N_d_i_r_e_c_t_o_r_y, and _X_m_N_p_a_t_t_e_r_n.  If
  306.            the default is NULL or empty, the current working
  307.            directory is used.
  308.  
  309.       _X_m_N_d_i_r_e_c_t_o_r_y_V_a_l_i_d
  310.            Specifies an attribute that is set only by the
  311.            directory search    procedure.  The    value is set to    True
  312.            if the directory    passed to the directory    search
  313.            procedure can actually be searched.  If this value is
  314.            False the file search procedure is not called, and
  315.            _X_m_N_d_i_r_M_a_s_k, _X_m_N_d_i_r_e_c_t_o_r_y, and _X_m_N_p_a_t_t_e_r_n    are not
  316.            changed.
  317.  
  318.       _X_m_N_d_i_r_L_i_s_t_I_t_e_m_s
  319.            Specifies the items in the directory list.  _X_t_G_e_t_V_a_l_u_e_s
  320.            for this    resource returns the list items    themselves,
  321.            not a copy of the list items.  The application must not
  322.            free the    returned items.
  323.  
  324.  
  325.  
  326.  
  327.      Page 5                        (printed 11/11/03)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  335.  
  336.  
  337.  
  338.       _X_m_N_d_i_r_L_i_s_t_I_t_e_m_C_o_u_n_t
  339.            Specifies the number of items in    the directory list.
  340.            The value must not be negative.
  341.  
  342.       _X_m_N_d_i_r_L_i_s_t_L_a_b_e_l_S_t_r_i_n_g
  343.            Specifies the label string of the directory list.  The
  344.            default for this    resource depends on the    locale.     In
  345.            the C locale the    default    is "Directories".
  346.  
  347.       _X_m_N_d_i_r_M_a_s_k
  348.            Specifies the directory mask used in determining    the
  349.            files and directories to    be displayed.  The default
  350.            value is    determined by the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c and
  351.            depends on the initial values of    _X_m_N_d_i_r_M_a_s_k,
  352.            _X_m_N_d_i_r_e_c_t_o_r_y, and _X_m_N_p_a_t_t_e_r_n.
  353.  
  354.       _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c
  355.            Specifies a directory search procedure to replace the
  356.            default directory-search    procedure.  FileSelectionBox's
  357.            default directory-search    procedure fulfills the needs
  358.            of most applications.  Because it is impossible to
  359.            cover the requirements of all applications, you can
  360.            replace the default search procedure.
  361.  
  362.            The directory search procedure is called    with two
  363.            arguments:  the FileSelectionBox    widget and a pointer
  364.            to an _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_C_a_l_l_b_a_c_k_S_t_r_u_c_t structure.  The
  365.            callback    structure is generated by the
  366.            _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c    and contains all information
  367.            required    to conduct a directory search, including the
  368.            directory mask and a qualified base directory and
  369.            search pattern.    Once called, it    is up to the search
  370.            routine to generate a new list of directories and
  371.            update the FileSelectionBox widget by using
  372.            _X_t_S_e_t_V_a_l_u_e_s.
  373.  
  374.            The search procedure must set _X_m_N_d_i_r_e_c_t_o_r_y_V_a_l_i_d and
  375.            _X_m_N_l_i_s_t_U_p_d_a_t_e_d.    If it generates    a new list of
  376.            directories, it must also set _X_m_N_d_i_r_L_i_s_t_I_t_e_m_s and
  377.            _X_m_N_d_i_r_L_i_s_t_I_t_e_m_C_o_u_n_t.
  378.  
  379.            If the search procedure cannot search the specified
  380.            directory, it must warn the user    and set
  381.            _X_m_N_d_i_r_e_c_t_o_r_y_V_a_l_i_d and _X_m_N_l_i_s_t_U_p_d_a_t_e_d to False, unless
  382.            it prompts and subsequently obtains a valid directory.
  383.            If the directory    is valid but is    the same as the
  384.            current _X_m_N_d_i_r_e_c_t_o_r_y, the search    procedure must set
  385.            _X_m_N_d_i_r_e_c_t_o_r_y_V_a_l_i_d to True, but it may elect not to
  386.            generate    a new list of directories.  In this case is
  387.            must set    _X_m_N_l_i_s_t_U_p_d_a_t_e_d to False.
  388.  
  389.            If the search procedure generates a new list of
  390.  
  391.  
  392.  
  393.      Page 6                        (printed 11/11/03)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  401.  
  402.  
  403.  
  404.            directories, it must set    _X_m_N_d_i_r_L_i_s_t_I_t_e_m_s    to the new
  405.            list of directories and _X_m_N_d_i_r_L_i_s_t_I_t_e_m_C_o_u_n_t to the
  406.            number of items in the list.  If    there are no
  407.            directories, it sets _X_m_N_d_i_r_L_i_s_t_I_t_e_m_s to NULL and
  408.            _X_m_N_d_i_r_L_i_s_t_I_t_e_m_C_o_u_n_t to 0.  In either case it must set
  409.            _X_m_N_d_i_r_e_c_t_o_r_y_V_a_l_i_d and _X_m_N_l_i_s_t_U_p_d_a_t_e_d to True.
  410.  
  411.            In constructing the list    of directories,    the search
  412.            procedure should    consider the value of the resource
  413.            _f_i_l_e_F_i_l_t_e_r_S_t_y_l_e and exclude directories the begin with
  414.            `.' when    this resource is set to    XmFILTER_HIDDEN_FILES.
  415.  
  416.            The search procedure ordinarily should not change the
  417.            callback    struct.     But if    the original directory is not
  418.            valid, the search procedure may obtain a    new directory
  419.            from the    user.  In this case it should set the ddddiiiirrrr
  420.            member of the callback struct to    the new    directory,
  421.            call the    _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c with the callback
  422.            struct as the input argument, and copy the qualified
  423.            data returned by    the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c into the
  424.            callback    struct.
  425.  
  426.       _X_m_N_d_i_r_S_p_e_c
  427.            Specifies the full file path specification.  This is
  428.            the _X_m_N_t_e_x_t_S_t_r_i_n_g resource in SelectionBox, renamed for
  429.            FileSelectionBox.  The default value is determined by
  430.            the FileSelectionBox after conducting the initial
  431.            directory and file search.
  432.  
  433.       _d_i_r_T_e_x_t_L_a_b_e_l_S_t_r_i_n_g
  434.            This resource  takes effect when    the _p_a_t_h_M_o_d_e is
  435.            XmPATH_MODE_RELATIVE and    is ignored when    the _p_a_t_h_M_o_d_e
  436.            is XmPATH_MODE_FULL.  Specifies the label string    of the
  437.            directory text field.  The default for this resource is
  438.            NULL.
  439.  
  440.       _f_i_l_e_F_i_l_t_e_r_S_t_y_l_e
  441.            There are two possible values:
  442.  
  443.       +o    _0 / _X_m_F_I_L_T_E_R__N_O_N_E - the default _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c    and
  444.            _X_m_N_f_i_l_e_S_e_a_r_c_h_P_r_o_c do not    filter any of the directories
  445.            or files.
  446.  
  447.       +o    _1 / _X_m_F_I_L_T_E_R__H_I_D_D_E_N__F_I_L_E_S - the default
  448.            _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c    and _X_m_N_f_i_l_e_S_e_a_r_c_h_P_r_o_c filter any file
  449.            or directory that begins    with `.'.  There is one
  450.            exception: the `..' directory is    not filtered out of
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.      Page 7                        (printed 11/11/03)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  467.  
  468.  
  469.  
  470.            the directory search.
  471.  
  472.       _X_m_N_f_i_l_e_L_i_s_t_I_t_e_m_s
  473.            Specifies the items in the file list.  This is the
  474.            _X_m_N_l_i_s_t_I_t_e_m_s resource in    SelectionBox, renamed for
  475.            FileSelectionBox.  _X_t_G_e_t_V_a_l_u_e_s for this resource
  476.            returns the list    items themselves, not a    copy of    the
  477.            list items.  The    application must not free the returned
  478.            items.
  479.  
  480.       _X_m_N_f_i_l_e_L_i_s_t_I_t_e_m_C_o_u_n_t
  481.            Specifies the number of items in    the file list.    This
  482.            is the _X_m_N_l_i_s_t_I_t_e_m_C_o_u_n_t resource    in SelectionBox,
  483.            renamed for FileSelectionBox.  The value    must not be
  484.            negative.
  485.  
  486.       _X_m_N_f_i_l_e_L_i_s_t_L_a_b_e_l_S_t_r_i_n_g
  487.            Specifies the label string of the file list.  This is
  488.            the _X_m_N_l_i_s_t_L_a_b_e_l_S_t_r_i_n_g resource in SelectionBox,
  489.            renamed for FileSelectionBox.  The default for this
  490.            resource    depends    on the locale.    In the C locale    the
  491.            default is "Files".
  492.  
  493.       _X_m_N_f_i_l_e_S_e_a_r_c_h_P_r_o_c
  494.            Specifies a file    search procedure to replace the
  495.            default file-search procedure.  FileSelectionBox's
  496.            default file-search procedure fulfills the needs    of
  497.            most applications.  Because it is impossible to cover
  498.            the requirements    of all applications, you can replace
  499.            the default search procedure.
  500.  
  501.            The file    search procedure is called with    two arguments:
  502.            the FileSelectionBox widget and a pointer to an
  503.            _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_C_a_l_l_b_a_c_k_S_t_r_u_c_t    structure.  The
  504.            callback    structure is generated by the
  505.            _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c    (and possibly modified by the
  506.            _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c).  It contains all information
  507.            required    to conduct a file search, including the
  508.            directory mask and a qualified base directory and
  509.            search pattern.    Once called, it    is up to the search
  510.            routine to generate a new list of files and update the
  511.            FileSelectionBox    widget by using    _X_t_S_e_t_V_a_l_u_e_s.
  512.  
  513.            The search procedure must set _X_m_N_l_i_s_t_U_p_d_a_t_e_d.  If it
  514.            generates a new list of files, it must also set
  515.            _X_m_N_f_i_l_e_L_i_s_t_I_t_e_m_s    and _X_m_N_f_i_l_e_L_i_s_t_I_t_e_m_C_o_u_n_t.
  516.  
  517.            The search procedure is recommended always to generate
  518.            a new list of files.  If    the mmmmaaaasssskkkk member    of the
  519.            callback    struct is the same as the mmmmaaaasssskkkk member of the
  520.            callback    struct in the preceding    call to    the search
  521.            procedure, the procedure    may elect not to generate a
  522.  
  523.  
  524.  
  525.      Page 8                        (printed 11/11/03)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  533.  
  534.  
  535.  
  536.            new list    of files.  In this case    it must    set
  537.            _X_m_N_l_i_s_t_U_p_d_a_t_e_d to False.
  538.  
  539.            If the search procedure generates a new list of files,
  540.            it must set _X_m_N_f_i_l_e_L_i_s_t_I_t_e_m_s to the new list of files
  541.            and _X_m_N_f_i_l_e_L_i_s_t_I_t_e_m_C_o_u_n_t    to the number of items in the
  542.            list.  If there are no files, it    sets _X_m_N_f_i_l_e_L_i_s_t_I_t_e_m_s
  543.            to NULL and _X_m_N_f_i_l_e_L_i_s_t_I_t_e_m_C_o_u_n_t    to 0.  In either case
  544.            it must set _X_m_N_l_i_s_t_U_p_d_a_t_e_d to True.
  545.  
  546.            In constructing the list    of files, the search procedure
  547.            should include only files of the    types specified    by the
  548.            widget's    _X_m_N_f_i_l_e_T_y_p_e_M_a_s_k.
  549.  
  550.            In constructing the list    of files, the search procedure
  551.            should consider the value of the    resource
  552.            _f_i_l_e_F_i_l_t_e_r_S_t_y_l_e and exclude files the begin with    `.'
  553.            when this resource is set to XmFILTER_HIDDEN_FILES.
  554.  
  555.            Setting _X_m_N_d_i_r_S_p_e_c is optional, but recommended.     Set
  556.            this attribute to the full file specification of    the
  557.            directory searched.  The    directory specification    is
  558.            displayed below the directory and file lists.
  559.  
  560.       _X_m_N_f_i_l_e_T_y_p_e_M_a_s_k
  561.            Specifies the type of files listed in the file list.
  562.            Following are the possible values:
  563.  
  564.       +o    _X_m_F_I_L_E__R_E_G_U_L_A_R restricts    the file list to contain only
  565.            regular files.
  566.  
  567.       +o    _X_m_F_I_L_E__D_I_R_E_C_T_O_R_Y    restricts the file list    to contain
  568.            only directories.
  569.  
  570.       +o    _X_m_F_I_L_E__A_N_Y__T_Y_P_E allows the list to contain all file
  571.            types including directories.
  572.  
  573.       _X_m_N_f_i_l_t_e_r_L_a_b_e_l_S_t_r_i_n_g
  574.            Specifies the label string for the text entry field for
  575.            the directory mask.  When the resource _p_a_t_h_M_o_d_e is
  576.            XmPATH_MODE_RELATIVE, this string labels    the text field
  577.            entry for the pattern.  The default for this resource
  578.            depends on the locale.  In the C    locale the default is
  579.            "Filter".
  580.  
  581.       _X_m_N_l_i_s_t_U_p_d_a_t_e_d
  582.            Specifies an attribute that is set only by the
  583.            directory and file search procedures.  Set to True if
  584.            the search procedure updated the    directory or file
  585.            list.
  586.  
  587.       _X_m_N_n_o_M_a_t_c_h_S_t_r_i_n_g
  588.  
  589.  
  590.  
  591.      Page 9                        (printed 11/11/03)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  599.  
  600.  
  601.  
  602.            Specifies a string to be    displayed in the file list if
  603.            the list    of files is empty.
  604.  
  605.       _p_a_t_h_M_o_d_e
  606.            This resource provides an alternate layout for the
  607.            FileSelectionBox.  It has two possible values:
  608.  
  609.       +o    _0 / _X_m_P_A_T_H__M_O_D_E__F_U_L_L - a    single text field to display
  610.            the XmNdirMask.
  611.  
  612.       +o    _1 / _X_m_P_A_T_H__M_O_D_E__R_E_L_A_T_I_V_E    - a text field to display the
  613.            XmNdirectory and    a text field to    display    the
  614.            XmNpattern.  When the _p_a_t_h_M_o_d_e is XmPATH_MODE_RELATIVE,
  615.            the resource _X_m_N_f_i_l_t_e_r_L_a_b_e_l_S_t_r_i_n_g applies to the    text
  616.            field for the _X_m_N_p_a_t_t_e_r_n, and the resource
  617.            _d_i_r_T_e_x_t_L_a_b_e_l_S_t_r_i_n_g applies to the text field for    the
  618.            _X_m_N_d_i_r_e_c_t_o_r_y.
  619.  
  620.       _X_m_N_p_a_t_t_e_r_n
  621.            Specifies the search pattern used in combination    with
  622.            _X_m_N_d_i_r_e_c_t_o_r_y in determining the files and directories
  623.            to be displayed.     The default value is determined by
  624.            the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c and    depends    on the initial
  625.            values of _X_m_N_d_i_r_M_a_s_k, _X_m_N_d_i_r_e_c_t_o_r_y, and _X_m_N_p_a_t_t_e_r_n.  If
  626.            the default is NULL or empty, a pattern that matches
  627.            all files is used.
  628.  
  629.       _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c
  630.            Specifies a search data qualification procedure to
  631.            replace the default data    qualification procedure.
  632.            FileSelectionBox's default data qualification procedure
  633.            fulfills    the needs of most applications.     Because it is
  634.            impossible to cover the requirements of all
  635.            applications, you can replace the default procedure.
  636.  
  637.            The data    qualification procedure    is called to generate
  638.            a qualified directory mask, base    directory, and search
  639.            pattern for use by the directory    and file search
  640.            procedures.  It is called with three arguments:    the
  641.            FileSelectionBox    widget and pointers to two
  642.            _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_C_a_l_l_b_a_c_k_S_t_r_u_c_t    structures.  The first
  643.            callback    struct contains    the input data.     The second
  644.            callback    struct contains    the output data, to be filled
  645.            in by the data qualification procedure.
  646.  
  647.            If the input ddddiiiirrrr    and ppppaaaatttttttteeeerrrrnnnn members are    not NULL, the
  648.            procedure must copy them    to the corresponding members
  649.            of the output callback struct.
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.      Page 10                        (printed 11/11/03)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  665.  
  666.  
  667.  
  668.            If the input ddddiiiirrrr    is NULL, the procedure constructs the
  669.            output ddddiiiirrrr as follows:  If the input mmmmaaaasssskkkk member    is
  670.            NULL, the procedure uses    the widget's _X_m_N_d_i_r_e_c_t_o_r_y as
  671.            the output ddddiiiirrrr; otherwise, it extracts the output ddddiiiirrrr
  672.            from the    input mmmmaaaasssskkkk.  If    the resulting output ddddiiiirrrr is
  673.            empty, the procedure uses the current working directory
  674.            instead.
  675.  
  676.            If the input ppppaaaatttttttteeeerrrrnnnn is NULL, the procedure constructs
  677.            the output ppppaaaatttttttteeeerrrrnnnn as follows:  If the input mmmmaaaasssskkkk
  678.            member is NULL, the procedure uses the widget's
  679.            _X_m_N_p_a_t_t_e_r_n as the output    ppppaaaatttttttteeeerrrrnnnn; otherwise, it
  680.            extracts    the output ppppaaaatttttttteeeerrrrnnnn from    the input mmmmaaaasssskkkk.     If
  681.            the resulting output ppppaaaatttttttteeeerrrrnnnn is empty, the procedure
  682.            uses a pattern that matches all files instead.
  683.  
  684.            The data    qualification procedure    constructs the output
  685.            mmmmaaaasssskkkk from the output ddddiiiirrrr    and ppppaaaatttttttteeeerrrrnnnn.  The procedure
  686.            must ensure that    the output ddddiiiirrrr,    ppppaaaatttttttteeeerrrrnnnn, and mmmmaaaasssskkkk are
  687.            fully qualified.
  688.  
  689.            If the input vvvvaaaalllluuuueeee member is not    NULL, the procedure
  690.            must copy it to the output vvvvaaaalllluuuueeee    member;    otherwise, the
  691.            procedure must copy the widget's    _X_m_N_d_i_r_S_p_e_c to the
  692.            output vvvvaaaalllluuuueeee.
  693.  
  694.            The data    qualification procedure    must calculate the
  695.            lengths of the output vvvvaaaalllluuuueeee, mmmmaaaasssskkkk, ddddiiiirrrr, and ppppaaaatttttttteeeerrrrnnnn
  696.            members and must    fill in    the corresponding length
  697.            members of the output callback struct.
  698.  
  699.            The data    qualification procedure    must copy the input
  700.            rrrreeeeaaaassssoooonnnn and eeeevvvveeeennnntttt    members    to the corresponding output
  701.            members.
  702.  
  703.            The values of the _X_m_N_d_i_r_S_e_a_r_c_h_P_r_o_c and
  704.            _X_m_N_f_i_l_e_S_e_a_r_c_h_P_r_o_c are procedure pointers    of type
  705.            _X_m_S_e_a_r_c_h_P_r_o_c, defined as    follows:
  706.  
  707.            void (* XmSearchProc) (wwww,,,, sssseeeeaaaarrrrcccchhhh____ddddaaaattttaaaa)
  708.             _W_i_d_g_e_t wwww;
  709.             _X_t_P_o_i_n_t_e_rsssseeeeaaaarrrrcccchhhh____ddddaaaattttaaaa;
  710.  
  711.       wwww    The FileSelectionBox widget
  712.  
  713.       sssseeeeaaaarrrrcccchhhh____ddddaaaattttaaaa
  714.            Pointer to an _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_C_a_l_l_b_a_c_k_S_t_r_u_c_t
  715.            containing information for conducting a search
  716.  
  717.  
  718.  
  719.       The value of the _X_m_N_q_u_a_l_i_f_y_S_e_a_r_c_h_D_a_t_a_P_r_o_c resource is    a
  720.  
  721.  
  722.  
  723.      Page 11                        (printed 11/11/03)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  731.  
  732.  
  733.  
  734.       procedure pointer of type _X_m_Q_u_a_l_i_f_y_P_r_o_c, defined as follows:
  735.  
  736.       void (* XmQualifyProc) (wwww,,,, iiiinnnnppppuuuutttt____ddddaaaattttaaaa,,,, oooouuuuttttppppuuuutttt____ddddaaaattttaaaa)
  737.            _W_i_d_g_e_t wwww;
  738.            _X_t_P_o_i_n_t_e_riiiinnnnppppuuuutttt____ddddaaaattttaaaa;
  739.            _X_t_P_o_i_n_t_e_roooouuuuttttppppuuuutttt____ddddaaaattttaaaa;
  740.  
  741.       wwww    The FileSelectionBox widget
  742.  
  743.       iiiinnnnppppuuuutttt____ddddaaaattttaaaa
  744.            Pointer to an _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_C_a_l_l_b_a_c_k_S_t_r_u_c_t
  745.            containing input    data to    be qualified
  746.  
  747.       oooouuuuttttppppuuuutttt____ddddaaaattttaaaa
  748.            Pointer to an _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_C_a_l_l_b_a_c_k_S_t_r_u_c_t
  749.            containing output data to be filled in by the
  750.            qualification procedure.
  751.  
  752.     IIIInnnnhhhheeeerrrriiiitttteeeedddd RRRReeeessssoooouuuurrrrcccceeeessss
  753.       FileSelectionBox inherits behavior and resources from    the
  754.       following superclasses.  For a complete description of each
  755.       resource, refer to the man page for that superclass.
  756.  
  757.                       XXXXmmmmSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  758.      NNNNaaaammmmeeee               CCCCllllaaaassssssss             TTTTyyyyppppeeee          DDDDeeeeffffaaaauuuulllltttt             AAAAcccccccceeeessssssss
  759.      ______________________________________________________________________________________________________
  760.      XmNapplyCallback           XmCCallback         XtCallbackList      NULL                 C
  761.      XmNapplyLabelString       XmCApplyLabelString     XmString      dynamic             CSG
  762.      XmNcancelCallback           XmCCallback         XtCallbackList      NULL                 C
  763.      XmNcancelLabelString      XmCCancelLabelString     XmString      dynamic             CSG
  764.      XmNchildPlacement           XmCChildPlacement     unsigned char      XmPLACE_ABOVE_SELECTION    CSG
  765.      XmNdialogType           XmCDialogType         unsigned char      XmDIALOG_FILE_SELECTION    G
  766.      XmNhelpLabelString           XmCHelpLabelString     XmString      dynamic             CSG
  767.      XmNlistItemCount           XmCItemCount         int          dynamic             CSG
  768.      XmNlistItems           XmCItems             XmStringTable      dynamic             CSG
  769.      XmNlistLabelString           XmCListLabelString     XmString      dynamic             CSG
  770.      XmNlistVisibleItemCount   XmCVisibleItemCount     int          dynamic             CSG
  771.      XmNminimizeButtons           XmCMinimizeButtons     Boolean      False                 CSG
  772.      XmNmustMatch           XmCMustMatch         Boolean      False                 CSG
  773.      XmNnoMatchCallback           XmCCallback         XtCallbackList      NULL                 C
  774.      XmNokCallback           XmCCallback         XtCallbackList      NULL                 C
  775.      XmNokLabelString           XmCOkLabelString         XmString      dynamic             CSG
  776.      XmNselectionLabelString   XmCSelectionLabelString     XmString      dynamic             CSG
  777.      XmNtextAccelerators       XmCTextAccelerators     XtAccelerators      default             C
  778.      XmNtextColumns           XmCColumns         short          dynamic             CSG
  779.      XmNtextString           XmCTextString         XmString      dynamic             CSG
  780.  
  781.  
  782.                 XXXXmmmmBBBBuuuulllllllleeeettttiiiinnnnBBBBooooaaaarrrrdddd    RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  783.      NNNNaaaammmmeeee           CCCCllllaaaassssssss        TTTTyyyyppppeeee         DDDDeeeeffffaaaauuuulllltttt     AAAAcccccccceeeessssssss
  784.  
  785.  
  786.  
  787.  
  788.  
  789.      Page 12                        (printed 11/11/03)
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  797.  
  798.  
  799.  
  800.      __________________________________________________________________________________
  801.      XmNallowOverlap       XmCAllowOverlap    Boolean         True         CSG
  802.      XmNautoUnmanage       XmCAutoUnmanage    Boolean         False         CG
  803.      XmNbuttonFontList       XmCButtonFontList    XmFontList     dynamic     CSG
  804.      XmNcancelButton       XmCWidget        Widget         Cancel    button     SG
  805.      XmNdefaultButton       XmCWidget        Widget         OK button     SG
  806.      XmNdefaultPosition       XmCDefaultPosition    Boolean         True         CSG
  807.      XmNdialogStyle       XmCDialogStyle    unsigned char     dynamic     CSG
  808.      XmNdialogTitle       XmCDialogTitle    XmString     NULL         CSG
  809.      XmNfocusCallback       XmCCallback        XtCallbackList     NULL         C
  810.      XmNlabelFontList       XmCLabelFontList    XmFontList     dynamic     CSG
  811.      XmNmapCallback       XmCCallback        XtCallbackList     NULL         C
  812.      XmNmarginHeight       XmCMarginHeight    Dimension     10         CSG
  813.      XmNmarginWidth       XmCMarginWidth    Dimension     10         CSG
  814.      XmNnoResize       XmCNoResize        Boolean         False         CSG
  815.      XmNresizePolicy       XmCResizePolicy    unsigned char     XmRESIZE_ANY     CSG
  816.      XmNshadowType       XmCShadowType    unsigned char     XmSHADOW_OUT     CSG
  817.      XmNtextFontList       XmCTextFontList    XmFontList     dynamic     CSG
  818.      XmNtextTranslations   XmCTranslations    XtTranslations     NULL         C
  819.      XmNunmapCallback       XmCCallback        XtCallbackList     NULL         C
  820.  
  821.  
  822.                       XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  823.      NNNNaaaammmmeeee             CCCCllllaaaassssssss             TTTTyyyyppppeeee         DDDDeeeeffffaaaauuuulllltttt        AAAAcccccccceeeessssssss
  824.      _________________________________________________________________________________________________
  825.      XmNbottomShadowColor    XmCBottomShadowColor    Pixel         dynamic        CSG
  826.      XmNbottomShadowPixmap   XmCBottomShadowPixmap   Pixmap         XmUNSPECIFIED_PIXMAP    CSG
  827.      XmNforeground         XmCForeground         Pixel         dynamic        CSG
  828.      XmNhelpCallback         XmCCallback         XtCallbackList     NULL            C
  829.      XmNhighlightColor         XmCHighlightColor         Pixel         dynamic        CSG
  830.      XmNhighlightPixmap         XmCHighlightPixmap         Pixmap         dynamic        CSG
  831.      XmNinitialFocus         XmCInitialFocus         Widget         dynamic        CSG
  832.      XmNnavigationType         XmCNavigationType         XmNavigationType     XmTAB_GROUP        CSG
  833.      XmNshadowThickness         XmCShadowThickness         Dimension         dynamic        CSG
  834.      XmNstringDirection         XmCStringDirection         XmStringDirection     dynamic        CG
  835.      XmNtopShadowColor         XmCTopShadowColor         Pixel         dynamic        CSG
  836.      XmNtopShadowPixmap         XmCTopShadowPixmap         Pixmap         dynamic        CSG
  837.      XmNtraversalOn         XmCTraversalOn         Boolean         True            CSG
  838.      XmNunitType         XmCUnitType         unsigned char     dynamic        CSG
  839.      XmNuserData         XmCUserData         XtPointer         NULL            CSG
  840.  
  841.  
  842.                  CCCCoooommmmppppoooossssiiiitttteeee RRRReeeessssoooouuuurrrrcccceeee    SSSSeeeetttt
  843.      NNNNaaaammmmeeee         CCCCllllaaaassssssss             TTTTyyyyppppeeee       DDDDeeeeffffaaaauuuulllltttt   AAAAcccccccceeeessssssss
  844.      ______________________________________________________________________
  845.      XmNchildren     XmCReadOnly         WidgetList       NULL         G
  846.      XmNinsertPosition     XmCInsertPosition   XtOrderProc   NULL         CSG
  847.      XmNnumChildren     XmCReadOnly         Cardinal       0         G
  848.  
  849.  
  850.                            CCCCoooorrrreeee    RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  851.      NNNNaaaammmmeeee                 CCCCllllaaaassssssss                 TTTTyyyyppppeeee          DDDDeeeeffffaaaauuuulllltttt             AAAAcccccccceeeessssssss
  852.  
  853.  
  854.  
  855.      Page 13                        (printed 11/11/03)
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  863.  
  864.  
  865.  
  866.      ______________________________________________________________________________________________________________
  867.      XmNaccelerators             XmCAccelerators             XtAccelerators   dynamic             N/A
  868.      XmNancestorSensitive         XmCSensitive             Boolean          dynamic             G
  869.      XmNbackground             XmCBackground             Pixel          dynamic             CSG
  870.      XmNbackgroundPixmap         XmCPixmap                 Pixmap          XmUNSPECIFIED_PIXMAP   CSG
  871.      XmNborderColor             XmCBorderColor             Pixel          XtDefaultForeground    CSG
  872.      XmNborderPixmap             XmCPixmap                 Pixmap          XmUNSPECIFIED_PIXMAP   CSG
  873.      XmNborderWidth             XmCBorderWidth             Dimension          0                 CSG
  874.      XmNcolormap             XmCColormap             Colormap          dynamic             CG
  875.      XmNdepth                 XmCDepth                 int          dynamic             CG
  876.      XmNdestroyCallback             XmCCallback             XtCallbackList   NULL             C
  877.      XmNheight                 XmCHeight                 Dimension          dynamic             CSG
  878.      XmNinitialResourcesPersistent   XmCInitialResourcesPersistent   Boolean          True             C
  879.      XmNmappedWhenManaged         XmCMappedWhenManaged         Boolean          True             CSG
  880.      XmNscreen                 XmCScreen                 Screen *          dynamic             CG
  881.      XmNsensitive             XmCSensitive             Boolean          True             CSG
  882.      XmNtranslations             XmCTranslations             XtTranslations   dynamic             CSG
  883.      XmNwidth                 XmCWidth                 Dimension          dynamic             CSG
  884.      XmNx                 XmCPosition             Position          0                 CSG
  885.      XmNy                 XmCPosition             Position          0                 CSG
  886.  
  887.  
  888.     CCCCaaaallllllllbbbbaaaacccckkkk IIIInnnnffffoooorrrrmmmmaaaattttiiiioooonnnn
  889.       A pointer to the following structure is passed to each
  890.       callback:
  891.       typedef struct
  892.       {
  893.         int         rrrreeeeaaaassssoooonnnn;
  894.         _X_E_v_e_n_t   **** eeeevvvveeeennnntttt;
  895.         _X_m_S_t_r_i_n_g vvvvaaaalllluuuueeee;
  896.         _i_n_t         lllleeeennnnggggtttthhhh;
  897.         _X_m_S_t_r_i_n_g mmmmaaaasssskkkk;
  898.         _i_n_t         mmmmaaaasssskkkk____lllleeeennnnggggtttthhhh;
  899.         _X_m_S_t_r_i_n_g ddddiiiirrrr;
  900.         _i_n_t         ddddiiiirrrr____lllleeeennnnggggtttthhhh;
  901.         _X_m_S_t_r_i_n_g ppppaaaatttttttteeeerrrrnnnn;
  902.         _i_n_t         ppppaaaatttttttteeeerrrrnnnn____lllleeeennnnggggtttthhhh;
  903.       } _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_C_a_l_l_b_a_c_k_S_t_r_u_c_t;
  904.  
  905.       rrrreeeeaaaassssoooonnnn
  906.            Indicates why the callback was invoked
  907.  
  908.       eeeevvvveeeennnntttt
  909.            Points to the _X_E_v_e_n_t that triggered the callback
  910.  
  911.       vvvvaaaalllluuuueeee
  912.            Specifies the current value of _X_m_N_d_i_r_S_p_e_c
  913.  
  914.       lllleeeennnnggggtttthhhh
  915.            Specifies the number of bytes in    vvvvaaaalllluuuueeee
  916.  
  917.       mmmmaaaasssskkkk Specifies the current value of _X_m_N_d_i_r_M_a_s_k
  918.  
  919.  
  920.  
  921.      Page 14                        (printed 11/11/03)
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  929.  
  930.  
  931.  
  932.       mmmmaaaasssskkkk____lllleeeennnnggggtttthhhh
  933.            Specifies the number of bytes in    mmmmaaaasssskkkk
  934.  
  935.       ddddiiiirrrr  Specifies the current base directory
  936.  
  937.       ddddiiiirrrr____lllleeeennnnggggtttthhhh
  938.            Specifies the number of bytes in    ddddiiiirrrr
  939.  
  940.       ppppaaaatttttttteeeerrrrnnnn
  941.            Specifies the current search pattern
  942.  
  943.       ppppaaaatttttttteeeerrrrnnnn____lllleeeennnnggggtttthhhh
  944.            Specifies the number of bytes in    ppppaaaatttttttteeeerrrrnnnn
  945.  
  946.     TTTTrrrraaaannnnssssllllaaaattttiiiioooonnnnssss
  947.       XmFileSelectionBox inherits translations from
  948.       XmSelectionBox.
  949.  
  950.     AAAAcccccccceeeelllleeeerrrraaaattttoooorrrrssss
  951.       The _X_m_N_t_e_x_t_A_c_c_e_l_e_r_a_t_o_r_s from XmSelectionBox are added    to the
  952.       selection and    directory mask (filter)    Text descendants of
  953.       XmFileSelectionBox.
  954.  
  955.     AAAAccccttttiiiioooonnnn RRRRoooouuuuttttiiiinnnneeeessss
  956.       The XmFileSelectionBox action    routines are described below:
  957.  
  958.       _S_e_l_e_c_t_i_o_n_B_o_x_U_p_O_r_D_o_w_n(_0|_1|_2|_3):
  959.            If neither the selection    text nor the directory mask
  960.            (filter)    text has the focus, this action    does nothing.
  961.  
  962.            If the selection    text has the focus, the    term lllliiiisssstttt in
  963.            the following description refers    to the file list, and
  964.            the term    tttteeeexxxxtttt refers to the selection text.  If the
  965.            directory mask text has the focus, lllliiiisssstttt refers to the
  966.            directory list, and tttteeeexxxxtttt    refers to the directory    mask
  967.            text.
  968.  
  969.            When called with    a 0 argument, selects the previous
  970.            item in the list    and replaces the text with that    item.
  971.  
  972.            When called with    a 1 argument, selects the next item in
  973.            the list    and replaces the text with that    item.
  974.  
  975.            When called with    a 2 argument, selects the first    item
  976.            in the list and replaces    the text with that item.
  977.  
  978.            When called with    a 3 argument, selects the last item in
  979.            the list    and replaces the text with that    item.
  980.  
  981.       _S_e_l_e_c_t_i_o_n_B_o_x_R_e_s_t_o_r_e():
  982.            If neither the selection    text nor the directory mask
  983.            (filter)    text has the focus, this action    does nothing.
  984.  
  985.  
  986.  
  987.      Page 15                        (printed 11/11/03)
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  995.  
  996.  
  997.  
  998.            If the selection    text has the focus, replaces the
  999.            selection text with the selected    item in    the file list.
  1000.            If no item in the file list is selected,    clears the
  1001.            selection text.
  1002.  
  1003.            If the directory    mask text has the focus, replaces the
  1004.            directory mask text with    a new directory    mask
  1005.            constructed from    the _X_m_N_d_i_r_e_c_t_o_r_y and _X_m_N_p_a_t_t_e_r_n
  1006.            resources.
  1007.  
  1008.     AAAAddddddddiiiittttiiiioooonnnnaaaallll BBBBeeeehhhhaaaavvvviiiioooorrrr
  1009.       The FileSelectionBox widget has the additional behavior
  1010.       described below:
  1011.  
  1012.       _M_A_n_y _K_C_a_n_c_e_l:
  1013.            Calls the activate callbacks for    the cancel button if
  1014.            it is sensitive.     If no cancel button exists and    the
  1015.            parent of the FileSelectionBox is a manager, passes the
  1016.            event to    the parent.
  1017.  
  1018.       <_K_A_c_t_i_v_a_t_e> in Selection Text:
  1019.            Calls the selection text    widget's _X_m_N_a_c_t_i_v_a_t_e_C_a_l_l_b_a_c_k
  1020.            callbacks.  If _X_m_N_m_u_s_t_M_a_t_c_h is True and the selection
  1021.            text does not match an item in the file list, calls the
  1022.            _X_m_N_n_o_M_a_t_c_h_C_a_l_l_b_a_c_k callbacks with reason    _X_m_C_R__N_O__M_A_T_C_H.
  1023.            Otherwise, calls    the _X_m_N_o_k_C_a_l_l_b_a_c_k callbacks with
  1024.            reason _X_m_C_R__O_K.
  1025.  
  1026.       <_K_A_c_t_i_v_a_t_e> in Directory Mask    Text:
  1027.            Calls the directory mask    text widget's
  1028.            _X_m_N_a_c_t_i_v_a_t_e_C_a_l_l_b_a_c_k callbacks.  Initiates a directory
  1029.            and file    search.     Calls the _X_m_N_a_p_p_l_y_C_a_l_l_b_a_c_k callbacks
  1030.            with reason _X_m_C_R__A_P_P_L_Y.
  1031.  
  1032.       <_D_o_u_b_l_e_C_l_i_c_k>    or <_K_A_c_t_i_v_a_t_e> in Directory List:
  1033.            Calls the directory list    widget's
  1034.            _X_m_N_d_e_f_a_u_l_t_A_c_t_i_o_n_C_a_l_l_b_a_c_k    callbacks.  Initiates a
  1035.            directory and file search.  Calls the _X_m_N_a_p_p_l_y_C_a_l_l_b_a_c_k
  1036.            callbacks with reason _X_m_C_R__A_P_P_L_Y.
  1037.  
  1038.       <_D_o_u_b_l_e_C_l_i_c_k>    or <_K_A_c_t_i_v_a_t_e> in File List:
  1039.            Calls the file list widget's _X_m_N_d_e_f_a_u_l_t_A_c_t_i_o_n_C_a_l_l_b_a_c_k
  1040.            callbacks.  Calls the _X_m_N_o_k_C_a_l_l_b_a_c_k callbacks with
  1041.            reason _X_m_C_R__O_K.
  1042.  
  1043.       <_S_i_n_g_l_e _S_e_l_e_c_t> or <_B_r_o_w_s_e _S_e_l_e_c_t> in    Directory List:
  1044.            Generates a new directory mask, using the selected list
  1045.            item as the directory and the pattern extracted from
  1046.            the current directory mask text as the search pattern.
  1047.            If the search pattern is    empty, uses a pattern that
  1048.            matches all files in the    directory.  Replaces the
  1049.            directory mask text with    the new    directory mask.
  1050.  
  1051.  
  1052.  
  1053.      Page 16                        (printed 11/11/03)
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  1061.  
  1062.  
  1063.  
  1064.       <_S_i_n_g_l_e _S_e_l_e_c_t> or <_B_r_o_w_s_e _S_e_l_e_c_t> in    File List:
  1065.            Replaces    the selection text with    the selected list
  1066.            item.
  1067.  
  1068.       <_B_D_r_a_g> in File List:
  1069.            Drags the content of one    or more    selected list items
  1070.            using the drag and drop facility.  If _B_D_r_a_g is pressed
  1071.            on an unselected    item, drags only that item, excluding
  1072.            any other selected items.
  1073.  
  1074.            The _X_m_N_e_x_p_o_r_t_T_a_r_g_e_t_s resource of    the associated
  1075.            DragContext is set to target types of COMPOUND_TEXT and
  1076.            FILE_NAME.  The _X_m_N_c_l_i_e_n_t_D_a_t_a resource is set to    the
  1077.            index of    the item in the    list.
  1078.  
  1079.       <_B_D_r_a_g> in Directory List:
  1080.            Drags the content of one    or more    selected list items
  1081.            using the drag and drop facility.  If _B_D_r_a_g is pressed
  1082.            on an unselected    item, drags only that item, excluding
  1083.            any other selected items.
  1084.  
  1085.            The _X_m_N_e_x_p_o_r_t_T_a_r_g_e_t_s resource of    the associated
  1086.            DragContext is set to target types of COMPOUND_TEXT and
  1087.            FILE_NAME.  The _X_m_N_c_l_i_e_n_t_D_a_t_a resource is set to    the
  1088.            index of    the item in the    list.
  1089.  
  1090.       <_A_p_p_l_y _B_u_t_t_o_n    _A_c_t_i_v_a_t_e_d>:
  1091.            Initiates a directory and file search.  Calls the
  1092.            _X_m_N_a_p_p_l_y_C_a_l_l_b_a_c_k    callbacks with reason _X_m_C_R__A_P_P_L_Y.
  1093.  
  1094.       <_O_K _B_u_t_t_o_n _A_c_t_i_v_a_t_e_d>:
  1095.            If _X_m_N_m_u_s_t_M_a_t_c_h is True and the selection text does not
  1096.            match an    item in    the file list, calls the
  1097.            _X_m_N_n_o_M_a_t_c_h_C_a_l_l_b_a_c_k callbacks with reason    _X_m_C_R__N_O__M_A_T_C_H.
  1098.            Otherwise, calls    the _X_m_N_o_k_C_a_l_l_b_a_c_k callbacks with
  1099.            reason _X_m_C_R__O_K.
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.      Page 17                        (printed 11/11/03)
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.      XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))    UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV    XXXXmmmmFFFFiiiilllleeeeSSSSeeeelllleeeeccccttttiiiioooonnnnBBBBooooxxxx((((3333XXXX))))
  1127.  
  1128.  
  1129.  
  1130.       <_C_a_n_c_e_l _B_u_t_t_o_n _A_c_t_i_v_a_t_e_d>:
  1131.            Calls the _X_m_N_c_a_n_c_e_l_C_a_l_l_b_a_c_k callbacks with reason
  1132.            _X_m_C_R__C_A_N_C_E_L.
  1133.  
  1134.       <_H_e_l_p    _B_u_t_t_o_n _A_c_t_i_v_a_t_e_d>:
  1135.            Calls the _X_m_N_h_e_l_p_C_a_l_l_b_a_c_k callbacks with    reason
  1136.            _X_m_C_R__H_E_L_P.
  1137.  
  1138.       <_K_A_c_t_i_v_a_t_e>:
  1139.            If no button, list widget, or text widget has the
  1140.            keyboard    focus:    If _X_m_N_m_u_s_t_M_a_t_c_h    is True    and the
  1141.            selection text does not match an    item in    the file list,
  1142.            calls the _X_m_N_n_o_M_a_t_c_h_C_a_l_l_b_a_c_k callbacks with reason
  1143.            _X_m_C_R__N_O__M_A_T_C_H.  Otherwise, calls    the _X_m_N_o_k_C_a_l_l_b_a_c_k
  1144.            callbacks with reason _X_m_C_R__O_K.
  1145.  
  1146.     VVVViiiirrrrttttuuuuaaaallll    BBBBiiiinnnnddddiiiinnnnggggssss
  1147.       The bindings for virtual keys    are vendor specific.  For
  1148.       information about bindings for virtual buttons and keys, see
  1149.       _V_i_r_t_u_a_l_B_i_n_d_i_n_g_s(_3_X).
  1150.  
  1151.      RRRREEEELLLLAAAATTTTEEEEDDDD IIIINNNNFFFFOOOORRRRMMMMAAAATTTTIIIIOOOONNNN
  1152.       _C_o_m_p_o_s_i_t_e(_3_X), _C_o_n_s_t_r_a_i_n_t(_3_X), _C_o_r_e(_3_X),
  1153.       _X_m_B_u_l_l_e_t_i_n_B_o_a_r_d(_3_X), _X_m_C_r_e_a_t_e_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x(_3_X),
  1154.       _X_m_C_r_e_a_t_e_F_i_l_e_S_e_l_e_c_t_i_o_n_D_i_a_l_o_g(_3_X),
  1155.       _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_B_o_x_G_e_t_C_h_i_l_d(_3_X), _X_m_F_i_l_e_S_e_l_e_c_t_i_o_n_D_o_S_e_a_r_c_h(_3_X),
  1156.       _X_m_M_a_n_a_g_e_r(_3_X), and _X_m_S_e_l_e_c_t_i_o_n_B_o_x(_3_X).
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.      Page 18                        (printed 11/11/03)
  1186.  
  1187.  
  1188.  
  1189.